package com.ruoyi.common.utils;

import com.github.pagehelper.PageHelper;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.utils.ip.AddressUtils;
import com.ruoyi.common.utils.sql.SqlUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

/**
 * 分页工具类
 *
 * @author ruoyi
 */
@Component
@Slf4j
public class PageUtils extends PageHelper {


    /**
     * 设置请求分页数据
     */
    public static void startPage() {

        PageDomain pageDomain = TableSupport.buildPageRequest();// 获取分页相关数据
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
        Boolean reasonable = pageDomain.getReasonable();
        // reasonable 为 true 表示启用合理化分页，即当当前页码超出最大页码时，自动将当前页码设置为最大页码；当当前页码小于1时，自动将当前页码设置为1。
        // reasonable 为 false 表示关闭合理化分页，即不对页码进行自动调整。

        // 最终一句 开启分页
        PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
    }

    /**
     * 清理分页的线程变量
     */
    public static void clearPage() {
        PageHelper.clearPage();
    }
}
